const { Service } = require('egg')
const { tableToList } = require('../utils/tools')

module.exports = class emptyroomService extends Service {
  /**
   * 爬取空闲教室
   * @param {string} term 学期
   * @param {string} zc *
   * @param {string} xq *
   * @param {string} jxl *
   * @return {Array} *
   */
  async table(term, zc, xq, jxl) { //! 木有处理，不太会
    const Cookie = this.ctx.state.Cookie
    const apiUrl = `${this.ctx.state.baseUrl}/eams/classroom/apply/free!search.action`
    const res = await this.ctx.curl(apiUrl, {
      method: 'POST',
      data: {
        // 'classroom.type.id': '',
        // 'classroom.campus.id': '',
        // 'classroom.building.id': '',
        // seats: '',
        // 'classroom.name': '',
        'cycleTime.cycleCount': '1', // 时间周期天数
        'cycleTime.cycleType': '1', // 时间周期方式（天1，周2）
        'cycleTime.dateBegin': '2024-04-21', // 开始时间
        'cycleTime.dateEnd': '2024-04-22', // 结束时间
        roomApplyTimeType: '0', // 查询方式（小节0，时间1）
        timeBegin: '1', // 使用小节开始,'08:00'
        timeEnd: '13', // 使用小节结束,'12:00'
      },
      headers: {
        Cookie,
        'Content-Type': 'application/x-www-form-urlencoded',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
      },
      timeout: 10000,
    })
    console.log('res', res.status)
    if (res.status === 200) {
      try {
        const tableList = tableToList(res.data.toString(), '#grid15320024301')
        return tableList
      } catch (err) {
        console.log('err', err)
        throw err
      }
    }
    return {}
  }
}
